// ajax.js

// 引入 uni-ajax 模块
import ajax from 'uni-ajax'
import URL from "@/config.js"
// 创建请求实例
const instance = ajax.create({
  // 初始配置
  baseURL: URL.HTTP
})

// 添加请求拦截器
instance.interceptors.request.use(
  config => {
    // 在发送请求前做些什么
    if (config.loading) {
      uni.showLoading({
        mask: true
      })
    }
    config.header.Authorization = `Bearer ${uni.getStorageSync('token')}` || ''
    return config
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
instance.interceptors.response.use(
  response => {
		uni.hideLoading()
    // 对响应数据做些什么
    return response.data
  },
  error => {
    uni.hideLoading()
    // 对响应错误做些什么
		if(error.statusCode === 401) {
			// 未登录/token过期
			uni.reLaunch({
				url: "/pages/login/login",
			})
		}else if(error.statusCode === 507) {
			uni.showToast({
				title: error.data.title,
				icon: "none",
				mask: true
			})
		}
    return Promise.reject(error)
  }
)

// 导出 create 创建后的实例
export default instance